import App from './App'
// 注释掉拦截器，保持全本地运行
// import '@/utils/interceptor.js';//引入拦截

// 引入错误处理工具（必须在最前面）
import '@/utils/errorHandler.js'

import Vue from 'vue'

// 添加Vue错误处理
Vue.config.errorHandler = function (err, vm, info) {
  // 静默处理Vue错误
};

// 添加全局警告处理
Vue.config.warnHandler = function (msg, vm, trace) {
  // 静默处理Vue警告
};

import uView from '@/uni_modules/uview-ui'
Vue.use(uView)

import store from './store'

// 注释掉API相关配置，保持全本地运行
/*
// 注册请求方法
import * as api from '@/api/api.js'
Vue.prototype.$api = api

import BASE_URL from '@/api/env.js' //引入接口共用地址
Vue.prototype.$API_BASE_URL= BASE_URL
*/

import config from '@/config/config.js';
Vue.prototype.$systemConfig = config

let vuexStore = require("@/store/$u.mixin.js");
Vue.mixin(vuexStore);

//是否启用调试工具（已注释掉，避免依赖问题）
// if(config.vconsole_status){
// 	const vconsole = require('vconsole')
// 	Vue.prototype.$vconsole = new vconsole() // 使用vconsole
// }

Vue.config.productionTip = false

App.mpType = 'app'

// 每日提醒管理
const dailyReminderManager = {
	// 检查并设置每日提醒
	setupDailyReminder() {
		try {
			// 在开发环境中，避免频繁设置提醒
			// #ifdef H5
			return;
			// #endif
			
			// 检查设置
			const appSettings = uni.getStorageSync('app_settings');
			if (!appSettings || !appSettings.notifications) {
				return;
			}
			
			// 检查之前的提醒设置
			const lastReminderSet = uni.getStorageSync('daily_reminder_set');
			const now = new Date();
			const today = now.toDateString();
			
			// 修复判断逻辑：使用setDate字段来判断是否今天已经设置过
			const shouldSetReminder = !lastReminderSet || 
									!lastReminderSet.setDate || 
									lastReminderSet.setDate !== today;
			
			if (shouldSetReminder) {
				this.scheduleToday();
			}
		} catch (error) {
			// 设置每日提醒失败，静默处理
		}
	},
	
	// 设置今天的提醒
	scheduleToday() {
		// #ifdef APP-PLUS
		try {
			// 获取声音设置
			const appSettings = uni.getStorageSync('app_settings');
			const soundEnabled = appSettings && appSettings.soundEnabled !== false; // 默认开启
			const soundOption = soundEnabled ? 'system' : 'none';
			
			const now = new Date();
			const reminderTime = new Date();
			reminderTime.setHours(20, 0, 0, 0); // 晚上8点
			
			// 如果今天的8点已过，设置明天的8点
			if (reminderTime <= now) {
				reminderTime.setDate(reminderTime.getDate() + 1);
			}
			
			// 设置通知
			plus.push.createMessage('记得查看今天的备忘录待办事项哦！📝', JSON.stringify({
				title: '备忘录提醒',
				content: '记得查看今天的备忘录待办事项哦！📝',
				when: reminderTime,
				sound: soundOption,
				cover: false
			}), {
				success: () => {
					// 保存设置记录
					uni.setStorageSync('daily_reminder_set', {
						time: reminderTime.getTime(),
						enabled: true,
						soundEnabled: soundEnabled,
						setDate: new Date().toDateString()
					});
				},
				fail: (err) => {
					// 每日提醒设置失败，静默处理
				}
			});
		} catch (error) {
			// 创建每日提醒失败，静默处理
		}
		// #endif
	}
};

try {
	const app = new Vue({
		store,
		...App
	})
	
	app.$mount()
	
	// #ifdef APP-PLUS
	// 在APP-PLUS环境中设置每日提醒
	// 延迟5秒执行，避免应用启动时立即触发
	setTimeout(() => {
		if (typeof plus !== 'undefined') {
			dailyReminderManager.setupDailyReminder();
		} else {
			document.addEventListener('plusready', () => {
				dailyReminderManager.setupDailyReminder();
			});
		}
	}, 5000); // 延迟5秒
	// #endif
	
} catch (error) {
	// 应用启动失败，静默处理
}

// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
  const app = createSSRApp(App)
  return {
    app
  }
}
// #endif